package skeleton_wearebatman;

import java.io.BufferedReader;  // két import, hogy tudjunk a képernyőre írni,
import java.io.IOException;     // illetve onnan beolvasni

class Generator implements Ioperable, IhasOutput {  //megvalósítja ezeket az
                                                    //interfészeket, hogy legyen
                                                    //lába

    private String name;        // muszáj egy változót használnunk, hogy
                                // ki tudjuk írni a nevét az objektumoknak

    public Generator(String s) {                    //konstruktor
        name = s;
        System.out.println("CALL | Generator | " + name + " | " + this.hashCode() + " | Generator()");
    }

    public Output getOutput(int index) {            // az output csatlakoztatására
        System.out.println("RETURN | Generator | " + name + " | " +this.hashCode() + " | getOutput()");
        return null;
    }

    public void connectOutput(Output out) {         // outputok csatlakoztatására
        System.out.println("CALL | Generator | " + name + " | " +this.hashCode() + " | connectOutput()");
    }

    public void operate() {                         // kiadja a következő bitet
        System.out.println("CALL | Generator | " + name + " | " +this.hashCode() + " | operate()");
    }

    public void setData(String s) {                 // be lehet állítani a bitsorozatot, ami kiadjon
        BufferedReader keyboard = new BufferedReader(new java.io.InputStreamReader(System.in));
        System.out.println("DECIDE | Generator | " + name + " please type in the string of bits:");
        try {
            String input = keyboard.readLine();    // beolvasás a billentyűzetről
        } catch (IOException ex) {
            System.out.println("IOException: " + ex );   // io hiba esetére
        }
        System.out.println("CALL | Generator | " + name + " | " + this.hashCode() + " | setData()");
    }
}
